<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Dingo.OGL.SensorGraph</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="Dingo-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://code.google.com/p/dingo-wsn/">Dingo</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="Dingo-module.html">Package&nbsp;Dingo</a> ::
        <a href="Dingo.OGL-module.html">Module&nbsp;OGL</a> ::
        Class&nbsp;SensorGraph
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="Dingo.OGL.SensorGraph-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class SensorGraph</h1><br /><br />
<center>
<center>  <map id="uml_class_diagram_for_dingo_og_9" name="uml_class_diagram_for_dingo_og_9">
<area shape="rect" href="javascript: void(0);" title="See `GetClassName`" alt="" coords="204,28,369,47"/>
<area shape="rect" href="javascript: void(0);" title="IsSameAs(self, Object p) &#45;&gt; bool" alt="" coords="204,50,369,68"/>
<area shape="rect" href="javascript: void(0);" title="Returns the class name of the C++ class using wxRTTI." alt="" coords="204,68,369,87"/>
<area shape="rect" href="javascript: void(0);" title="The base class for most wx objects, although in wxPython not much functionality is needed nor exposed." alt="" coords="203,11,371,88"/>
<area shape="rect" href="javascript: void(0);" title="See `GetNextHandler` and `SetNextHandler`" alt="" coords="128,135,445,154"/>
<area shape="rect" href="javascript: void(0);" title="See `GetPreviousHandler` and `SetPreviousHandler`" alt="" coords="128,154,445,172"/>
<area shape="rect" href="javascript: void(0);" title="See `GetEvtHandlerEnabled` and `SetEvtHandlerEnabled`" alt="" coords="128,172,445,191"/>
<area shape="rect" href="javascript: void(0);" title="SetEvtHandlerEnabled(self, bool enabled)" alt="" coords="128,194,445,212"/>
<area shape="rect" href="javascript: void(0);" title="ProcessEvent(self, Event event) &#45;&gt; bool" alt="" coords="128,212,445,231"/>
<area shape="rect" href="javascript: void(0);" title="SetNextHandler(self, EvtHandler handler)" alt="" coords="128,231,445,250"/>
<area shape="rect" href="javascript: void(0);" title="Disconnect(self, int id, int lastId=&#45;1, EventType eventType=wxEVT_NULL) &#45;&gt;  bool" alt="" coords="128,250,445,268"/>
<area shape="rect" href="javascript: void(0);" title="Returns:  EvtHandler" alt="" coords="128,268,445,287"/>
<area shape="rect" href="javascript: void(0);" title="SetPreviousHandler(self, EvtHandler handler)" alt="" coords="128,287,445,306"/>
<area shape="rect" href="javascript: void(0);" title="Disconencts the event handler binding for event from self." alt="" coords="128,306,445,324"/>
<area shape="rect" href="javascript: void(0);" title="Bind an event to an event handler." alt="" coords="128,324,445,343"/>
<area shape="rect" href="javascript: void(0);" title="wx._core.EvtHandler.ProcessPendingEvents" alt="" coords="128,343,445,362"/>
<area shape="rect" href="javascript: void(0);" title="AddPendingEvent(self, Event event)" alt="" coords="128,362,445,380"/>
<area shape="rect" href="javascript: void(0);" title="Connect(self, int id, int lastId, int eventType, PyObject func)" alt="" coords="128,380,445,399"/>
<area shape="rect" href="javascript: void(0);" title="Returns:  bool" alt="" coords="128,399,445,418"/>
<area shape="rect" href="javascript: void(0);" title="Returns:  EvtHandler" alt="" coords="128,418,445,436"/>
<area shape="rect" href="javascript: void(0);" title="Proxy of C++ EvtHandler class" alt="" coords="127,118,447,438"/>
<area shape="rect" href="javascript: void(0);" title="See `GetCaret` and `SetCaret`" alt="" coords="153,484,420,503"/>
<area shape="rect" href="javascript: void(0);" title="See `GetMaxHeight`" alt="" coords="153,503,420,522"/>
<area shape="rect" href="javascript: void(0);" title="See `IsTopLevel`" alt="" coords="153,522,420,540"/>
<area shape="rect" href="javascript: void(0);" title="See `GetHelpText` and `SetHelpText`" alt="" coords="153,540,420,559"/>
<area shape="rect" href="javascript: void(0);" title="See `GetAutoLayout` and `SetAutoLayout`" alt="" coords="153,559,420,578"/>
<area shape="rect" href="javascript: void(0);" title="See `GetContainingSizer` and `SetContainingSizer`" alt="" coords="153,578,420,596"/>
<area shape="rect" href="javascript: void(0);" title="See `GetRect` and `SetRect`" alt="" coords="153,596,420,615"/>
<area shape="rect" href="javascript: void(0);" title="See `GetCharHeight`" alt="" coords="153,615,420,634"/>
<area shape="rect" href="javascript: void(0);" title="See `GetEventHandler` and `SetEventHandler`" alt="" coords="153,634,420,652"/>
<area shape="rect" href="javascript: void(0);" title="See `GetMinHeight`" alt="" coords="153,652,420,671"/>
<area shape="rect" href="javascript: void(0);" title="See `GetMinSize` and `SetMinSize`" alt="" coords="153,671,420,690"/>
<area shape="rect" href="javascript: void(0);" title="See `GetPosition` and `SetPosition`" alt="" coords="153,690,420,708"/>
<area shape="rect" href="javascript: void(0);" title="See `GetUpdateRegion`" alt="" coords="153,708,420,727"/>
<area shape="rect" href="javascript: void(0);" title="See `GetId` and `SetId`" alt="" coords="153,746,420,764"/>
<area shape="rect" href="javascript: void(0);" title="MoveAfterInTabOrder(self, Window win)" alt="" coords="153,767,420,786"/>
<area shape="rect" href="javascript: void(0);" title="SetClientSizeWH(self, int width, int height)" alt="" coords="153,786,420,804"/>
<area shape="rect" href="javascript: void(0);" title="Raises the window to the top of the window hierarchy." alt="" coords="153,804,420,823"/>
<area shape="rect" href="javascript: void(0);" title="Sizes the window so that it fits around its subwindows." alt="" coords="153,823,420,842"/>
<area shape="rect" href="javascript: void(0);" title="UnregisterHotKey(self, int hotkeyId) &#45;&gt; bool" alt="" coords="153,842,420,860"/>
<area shape="rect" href="javascript: void(0);" title="SetContainingSizer(self, Sizer sizer)" alt="" coords="153,860,420,879"/>
<area shape="rect" href="javascript: void(0);" title="GetFullTextExtent(String string, Font font=None) &#45;&gt;    (width, height, descent, externalLeading)  Get the width, height, decent and leading of the text using the current or specified font." alt="" coords="153,879,420,898"/>
<area shape="rect" href="javascript: void(0);" title="Returns the current autoLayout setting" alt="" coords="153,898,420,916"/>
<area shape="rect" href="javascript: void(0);" title="AdjustForLayoutDirection(self, int x, int width, int widthTotal) &#45;&gt; int" alt="" coords="153,916,420,935"/>
<area shape="rect" href="javascript: void(0);" title="Returns the parent of the parent of this window, or None if there isn&#39;t  one." alt="" coords="153,935,420,954"/>
<area shape="rect" href="javascript: void(0);" title="ConvertDialogPointToPixels(self, Point pt) &#45;&gt; Point" alt="" coords="153,954,420,972"/>
<area shape="rect" href="javascript: void(0);" title="Equivalent to calling Show(False)." alt="" coords="153,972,420,991"/>
<area shape="rect" href="javascript: void(0);" title="SetToolTipString(self, String tip)" alt="" coords="153,991,420,1010"/>
<area shape="rect" href="javascript: void(0);" title="SetCursor(self, Cursor cursor) &#45;&gt; bool" alt="" coords="153,1028,420,1047"/>
<area shape="rect" href="javascript: void(0);" title="wx.Window is the base class for all windows and represents any visible object on the screen." alt="" coords="152,467,421,1048"/>
<area shape="rect" href="javascript: void(0);" title="repr(x)" alt="" coords="195,1103,379,1122"/>
<area shape="rect" href="javascript: void(0);" title="In contrast to `SetFocus` (see above) this will set the focus to the panel  even of there are child windows in the panel." alt="" coords="195,1122,379,1140"/>
<area shape="rect" href="javascript: void(0);" title="Proxy of C++ Panel class" alt="" coords="193,1078,380,1142"/>
<area shape="rect" href="javascript: void(0);" title="See `GetScaleY`" alt="" coords="159,1188,415,1207"/>
<area shape="rect" href="javascript: void(0);" title="See `GetViewStart`" alt="" coords="159,1207,415,1226"/>
<area shape="rect" href="javascript: void(0);" title="See `GetTargetWindow` and `SetTargetWindow`" alt="" coords="159,1226,415,1244"/>
<area shape="rect" href="javascript: void(0);" title="The membership flag" alt="" coords="159,1244,415,1263"/>
<area shape="rect" href="javascript: void(0);" title="See `GetScaleX`" alt="" coords="159,1263,415,1282"/>
<area shape="rect" href="javascript: void(0);" title="Get the size of one logical unit in physical units." alt="" coords="159,1284,415,1303"/>
<area shape="rect" href="javascript: void(0);" title="Returns:  Window" alt="" coords="159,1303,415,1322"/>
<area shape="rect" href="javascript: void(0);" title="CalcUnscrolledPosition(self, Point pt) &#45;&gt; Point CalcUnscrolledPosition(int  x, int y) &#45;&gt; (ux, uy)" alt="" coords="159,1322,415,1340"/>
<area shape="rect" href="javascript: void(0);" title="GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) &#45;&gt;  VisualAttributes" alt="" coords="159,1340,415,1359"/>
<area shape="rect" href="javascript: void(0);" title="Scroll(self, int x, int y)" alt="" coords="159,1359,415,1378"/>
<area shape="rect" href="javascript: void(0);" title="CalcScrollInc(self, ScrollWinEvent event) &#45;&gt; int" alt="" coords="159,1378,415,1396"/>
<area shape="rect" href="javascript: void(0);" title="GetScrollPageSize(self, int orient) &#45;&gt; int" alt="" coords="159,1396,415,1415"/>
<area shape="rect" href="javascript: void(0);" title="SetScrollbars(self, int pixelsPerUnitX, int pixelsPerUnitY, int noUnitsX, ..." alt="" coords="159,1415,415,1434"/>
<area shape="rect" href="javascript: void(0);" title="EnableScrolling(self, bool x_scrolling, bool y_scrolling)" alt="" coords="159,1434,415,1452"/>
<area shape="rect" href="javascript: void(0);" title="SetTargetWindow(self, Window target)" alt="" coords="159,1452,415,1471"/>
<area shape="rect" href="javascript: void(0);" title="wx._windows.ScrolledWindow.AdjustScrollbars" alt="" coords="159,1471,415,1490"/>
<area shape="rect" href="javascript: void(0);" title="SetScale(self, double xs, double ys)" alt="" coords="159,1490,415,1508"/>
<area shape="rect" href="javascript: void(0);" title="Get the view start" alt="" coords="159,1508,415,1527"/>
<area shape="rect" href="javascript: void(0);" title="SetScrollRate(self, int xstep, int ystep)" alt="" coords="159,1546,415,1564"/>
<area shape="rect" href="javascript: void(0);" title="Proxy of C++ ScrolledWindow class" alt="" coords="157,1171,416,1566"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.SetDiagram" alt="" coords="137,1620,436,1639"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.RemoveShape" alt="" coords="137,1639,436,1658"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.OnEndDragRight" alt="" coords="137,1658,436,1676"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.OnRightClick" alt="" coords="137,1676,436,1695"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.OnEndDragLeft" alt="" coords="137,1695,436,1714"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.OnMouseEvent" alt="" coords="137,1714,436,1732"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.OnBeginDragRight" alt="" coords="137,1732,436,1751"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.FindShape" alt="" coords="137,1751,436,1770"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.OnBeginDragLeft" alt="" coords="137,1770,436,1788"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.OnLeftClick" alt="" coords="137,1788,436,1807"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.OnPaint" alt="" coords="137,1807,436,1826"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.GetQuickEditMode" alt="" coords="137,1826,436,1844"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.Redraw" alt="" coords="137,1844,436,1863"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas.OnDragRight" alt="" coords="137,1882,436,1900"/>
<area shape="rect" href="javascript: void(0);" title="wx.lib.ogl._canvas.ShapeCanvas" alt="" coords="136,1595,437,1902"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#avatars" title="dictionary of Dingo.OGL.SensorAvatar objects, keyed on id of represented  sensor." alt="" coords="17,1948,556,1967"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#OnNewAvatar" title="Creates a new SensorAvatar object and places it on the canvas." alt="" coords="17,1970,556,1988"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#OnResize" title="Decorator class to ensure wxPython calls are executed in correct thread" alt="" coords="17,1988,556,2007"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#drawMsg" title="Visualise a radio message." alt="" coords="17,2007,556,2026"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#OnSetShape" title="Set the shape of an individual avatar." alt="" coords="17,2026,556,2044"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#AddSensorAvatar" title="Decorator class to ensure wxPython calls are executed in correct thread" alt="" coords="17,2044,556,2063"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#ClearGraph" title="Decorator class to ensure wxPython calls are executed in correct thread" alt="" coords="17,2063,556,2082"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#OnDetachGUI" title="This method must NOT be thread swtiched (or pubsub will barf)." alt="" coords="17,2082,556,2100"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#OnSetColour" title="Set the colour of an individual avatar." alt="" coords="17,2100,556,2119"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#addBackground" title="Decorator class to ensure wxPython calls are executed in correct thread" alt="" coords="17,2119,556,2138"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#GetAvatars" title="Decorator class to ensure wxPython calls are executed in correct thread" alt="" coords="17,2138,556,2156"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#__init__" title="Initialise the SensorGraph." alt="" coords="17,2156,556,2175"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#OnMoveAvatar" title="Moves a given avatar on the canvas." alt="" coords="17,2175,556,2194"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#OnDrawMsg" title="Event handler for DrawMsg events." alt="" coords="17,2194,556,2212"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html#GetArcs" title="Decorator class to ensure wxPython calls are executed in correct thread" alt="" coords="17,2212,556,2231"/>
<area shape="rect" href="Dingo.OGL.SensorGraph&#45;class.html" title="The Graph on which Avatars and Arcs are placed." alt="" coords="16,1931,557,2232"/>
</map>
  <img src="uml_class_diagram_for_dingo_og_9.gif" alt='' usemap="#uml_class_diagram_for_dingo_og_9" ismap="ismap" class="graph-without-title" />
</center></center>
<hr />
The Graph on which Avatars and Arcs are placed. The sensor graph is a 
  visual representation of the simulated network.  Each sensor node is 
  displayed on the graph allowing the user to gain insight into what is 
  happening within the network, The displayed sensors can be moved around 
  the graph panel affecting there simulated locations.  Communications 
  between nodes are displayed on the graph as arcs between the 
  communicating nodes.<br /><br />

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">parent</span>,
        <span class="summary-sig-arg">app</span>)</span><br />
      Initialise the SensorGraph.</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="OnDetachGUI"></a><span class="summary-sig-name">OnDetachGUI</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">msg</span>)</span><br />
      This method must NOT be thread swtiched (or pubsub will barf).</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#OnNewAvatar" class="summary-sig-name">OnNewAvatar</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">msg</span>)</span><br />
      Creates a new SensorAvatar object and places it on the canvas.</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#OnMoveAvatar" class="summary-sig-name">OnMoveAvatar</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">msg</span>)</span><br />
      Moves a given avatar on the canvas.</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#OnSetColour" class="summary-sig-name">OnSetColour</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">msg</span>)</span><br />
      Set the colour of an individual avatar.</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#OnSetShape" class="summary-sig-name">OnSetShape</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">msg</span>)</span><br />
      Set the shape of an individual avatar.</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#OnDrawMsg" class="summary-sig-name">OnDrawMsg</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">msg</span>)</span><br />
      Event handler for DrawMsg events.</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#drawMsg" class="summary-sig-name">drawMsg</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">sender</span>=<span class="summary-sig-default">None</span>,
        <span class="summary-sig-arg">receivers</span>=<span class="summary-sig-default">None</span>,
        <span class="summary-sig-arg">bcast</span>=<span class="summary-sig-default">False</span>,
        <span class="summary-sig-arg">colour</span>=<span class="summary-sig-default">None</span>,
        <span class="summary-sig-arg">isdropped</span>=<span class="summary-sig-default">False</span>)</span><br />
      Visualise a radio message.</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#OnResize" class="summary-sig-name">OnResize</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">event</span>)</span><br />
      Decorator class to ensure wxPython calls are executed in correct 
      thread</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#AddSensorAvatar" class="summary-sig-name">AddSensorAvatar</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">id</span>,
        <span class="summary-sig-arg">xy</span>,
        <span class="summary-sig-arg">colour</span>,
        <span class="summary-sig-arg">size</span>=<span class="summary-sig-default">10</span>,
        <span class="summary-sig-arg">shape</span>=<span class="summary-sig-default">None</span>)</span><br />
      Decorator class to ensure wxPython calls are executed in correct 
      thread</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#GetAvatars" class="summary-sig-name">GetAvatars</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Decorator class to ensure wxPython calls are executed in correct 
      thread</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#GetArcs" class="summary-sig-name">GetArcs</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Decorator class to ensure wxPython calls are executed in correct 
      thread</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#ClearGraph" class="summary-sig-name">ClearGraph</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Decorator class to ensure wxPython calls are executed in correct 
      thread</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="Dingo.OGL.SensorGraph-class.html#addBackground" class="summary-sig-name">addBackground</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">theImage</span>=<span class="summary-sig-default">None</span>)</span><br />
      Decorator class to ensure wxPython calls are executed in correct 
      thread</td>
          <td align="right" valign="top">
            
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx.lib.ogl._canvas.ShapeCanvas</code></b>:
      <code>AddShape</code>,
      <code>FindShape</code>,
      <code>GetDiagram</code>,
      <code>GetQuickEditMode</code>,
      <code>InsertShape</code>,
      <code>OnBeginDragLeft</code>,
      <code>OnBeginDragRight</code>,
      <code>OnDragLeft</code>,
      <code>OnDragRight</code>,
      <code>OnEndDragLeft</code>,
      <code>OnEndDragRight</code>,
      <code>OnLeftClick</code>,
      <code>OnMouseEvent</code>,
      <code>OnPaint</code>,
      <code>OnRightClick</code>,
      <code>Redraw</code>,
      <code>RemoveShape</code>,
      <code>SetDiagram</code>,
      <code>Snap</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._windows.ScrolledWindow</code></b>:
      <code>AdjustScrollbars</code>,
      <code>CalcScrollInc</code>,
      <code>CalcScrolledPosition</code>,
      <code>CalcUnscrolledPosition</code>,
      <code>Create</code>,
      <code>DoPrepareDC</code>,
      <code>EnableScrolling</code>,
      <code>GetScaleX</code>,
      <code>GetScaleY</code>,
      <code>GetScrollPageSize</code>,
      <code>GetScrollPixelsPerUnit</code>,
      <code>GetTargetWindow</code>,
      <code>GetViewStart</code>,
      <code>Scroll</code>,
      <code>SetScale</code>,
      <code>SetScrollPageSize</code>,
      <code>SetScrollRate</code>,
      <code>SetScrollbars</code>,
      <code>SetTargetWindow</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._windows.Panel</code></b>:
      <code>SetFocusIgnoringChildren</code>,
      <code>__repr__</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._core.Window</code></b>:
      <code>AcceptsFocus</code>,
      <code>AcceptsFocusFromKeyboard</code>,
      <code>AddChild</code>,
      <code>AdjustForLayoutDirection</code>,
      <code>AssociateHandle</code>,
      <code>CacheBestSize</code>,
      <code>CanSetTransparent</code>,
      <code>CaptureMouse</code>,
      <code>Center</code>,
      <code>CenterOnParent</code>,
      <code>Centre</code>,
      <code>CentreOnParent</code>,
      <code>ClearBackground</code>,
      <code>ClientToScreen</code>,
      <code>ClientToScreenXY</code>,
      <code>Close</code>,
      <code>ConvertDialogPointToPixels</code>,
      <code>ConvertDialogSizeToPixels</code>,
      <code>ConvertPixelPointToDialog</code>,
      <code>ConvertPixelSizeToDialog</code>,
      <code>DLG_PNT</code>,
      <code>DLG_SZE</code>,
      <code>Destroy</code>,
      <code>DestroyChildren</code>,
      <code>Disable</code>,
      <code>DissociateHandle</code>,
      <code>DragAcceptFiles</code>,
      <code>Enable</code>,
      <code>FindWindowById</code>,
      <code>FindWindowByName</code>,
      <code>Fit</code>,
      <code>FitInside</code>,
      <code>Freeze</code>,
      <code>GetAcceleratorTable</code>,
      <code>GetAdjustedBestSize</code>,
      <code>GetAutoLayout</code>,
      <code>GetBackgroundColour</code>,
      <code>GetBackgroundStyle</code>,
      <code>GetBestFittingSize</code>,
      <code>GetBestSize</code>,
      <code>GetBestSizeTuple</code>,
      <code>GetBestVirtualSize</code>,
      <code>GetBorder</code>,
      <code>GetCaret</code>,
      <code>GetCharHeight</code>,
      <code>GetCharWidth</code>,
      <code>GetChildren</code>,
      <code>GetClientAreaOrigin</code>,
      <code>GetClientRect</code>,
      <code>GetClientSize</code>,
      <code>GetClientSizeTuple</code>,
      <code>GetConstraints</code>,
      <code>GetContainingSizer</code>,
      <code>GetCursor</code>,
      <code>GetDefaultAttributes</code>,
      <code>GetDropTarget</code>,
      <code>GetEffectiveMinSize</code>,
      <code>GetEventHandler</code>,
      <code>GetExtraStyle</code>,
      <code>GetFont</code>,
      <code>GetForegroundColour</code>,
      <code>GetFullTextExtent</code>,
      <code>GetGrandParent</code>,
      <code>GetGtkWidget</code>,
      <code>GetHandle</code>,
      <code>GetHelpText</code>,
      <code>GetHelpTextAtPoint</code>,
      <code>GetId</code>,
      <code>GetLabel</code>,
      <code>GetLayoutDirection</code>,
      <code>GetMaxHeight</code>,
      <code>GetMaxSize</code>,
      <code>GetMaxWidth</code>,
      <code>GetMinHeight</code>,
      <code>GetMinSize</code>,
      <code>GetMinWidth</code>,
      <code>GetName</code>,
      <code>GetParent</code>,
      <code>GetPosition</code>,
      <code>GetPositionTuple</code>,
      <code>GetRect</code>,
      <code>GetScreenPosition</code>,
      <code>GetScreenPositionTuple</code>,
      <code>GetScreenRect</code>,
      <code>GetScrollPos</code>,
      <code>GetScrollRange</code>,
      <code>GetScrollThumb</code>,
      <code>GetSize</code>,
      <code>GetSizeTuple</code>,
      <code>GetSizer</code>,
      <code>GetTextExtent</code>,
      <code>GetThemeEnabled</code>,
      <code>GetToolTip</code>,
      <code>GetTopLevelParent</code>,
      <code>GetUpdateClientRect</code>,
      <code>GetUpdateRegion</code>,
      <code>GetValidator</code>,
      <code>GetVirtualSize</code>,
      <code>GetVirtualSizeTuple</code>,
      <code>GetWindowBorderSize</code>,
      <code>GetWindowStyle</code>,
      <code>GetWindowStyleFlag</code>,
      <code>GetWindowVariant</code>,
      <code>HasCapture</code>,
      <code>HasFlag</code>,
      <code>HasMultiplePages</code>,
      <code>HasScrollbar</code>,
      <code>HasTransparentBackground</code>,
      <code>Hide</code>,
      <code>HitTest</code>,
      <code>HitTestXY</code>,
      <code>InheritAttributes</code>,
      <code>InheritsBackgroundColour</code>,
      <code>InitDialog</code>,
      <code>InvalidateBestSize</code>,
      <code>IsBeingDeleted</code>,
      <code>IsDoubleBuffered</code>,
      <code>IsEnabled</code>,
      <code>IsExposed</code>,
      <code>IsExposedPoint</code>,
      <code>IsExposedRect</code>,
      <code>IsFrozen</code>,
      <code>IsRetained</code>,
      <code>IsShown</code>,
      <code>IsShownOnScreen</code>,
      <code>IsTopLevel</code>,
      <code>Layout</code>,
      <code>LineDown</code>,
      <code>LineUp</code>,
      <code>Lower</code>,
      <code>MakeModal</code>,
      <code>Move</code>,
      <code>MoveAfterInTabOrder</code>,
      <code>MoveBeforeInTabOrder</code>,
      <code>MoveXY</code>,
      <code>Navigate</code>,
      <code>PageDown</code>,
      <code>PageUp</code>,
      <code>PopEventHandler</code>,
      <code>PopupMenu</code>,
      <code>PopupMenuXY</code>,
      <code>PostCreate</code>,
      <code>PrepareDC</code>,
      <code>PushEventHandler</code>,
      <code>Raise</code>,
      <code>Refresh</code>,
      <code>RefreshRect</code>,
      <code>RegisterHotKey</code>,
      <code>ReleaseMouse</code>,
      <code>RemoveChild</code>,
      <code>RemoveEventHandler</code>,
      <code>Reparent</code>,
      <code>ScreenToClient</code>,
      <code>ScreenToClientXY</code>,
      <code>ScrollLines</code>,
      <code>ScrollPages</code>,
      <code>ScrollWindow</code>,
      <code>SendSizeEvent</code>,
      <code>SetAcceleratorTable</code>,
      <code>SetAutoLayout</code>,
      <code>SetBackgroundColour</code>,
      <code>SetBackgroundStyle</code>,
      <code>SetBestFittingSize</code>,
      <code>SetCaret</code>,
      <code>SetClientRect</code>,
      <code>SetClientSize</code>,
      <code>SetClientSizeWH</code>,
      <code>SetConstraints</code>,
      <code>SetContainingSizer</code>,
      <code>SetCursor</code>,
      <code>SetDimensions</code>,
      <code>SetDoubleBuffered</code>,
      <code>SetDropTarget</code>,
      <code>SetEventHandler</code>,
      <code>SetExtraStyle</code>,
      <code>SetFocus</code>,
      <code>SetFocusFromKbd</code>,
      <code>SetFont</code>,
      <code>SetForegroundColour</code>,
      <code>SetHelpText</code>,
      <code>SetHelpTextForId</code>,
      <code>SetId</code>,
      <code>SetInitialSize</code>,
      <code>SetLabel</code>,
      <code>SetLayoutDirection</code>,
      <code>SetMaxSize</code>,
      <code>SetMinSize</code>,
      <code>SetName</code>,
      <code>SetOwnBackgroundColour</code>,
      <code>SetOwnFont</code>,
      <code>SetOwnForegroundColour</code>,
      <code>SetPosition</code>,
      <code>SetRect</code>,
      <code>SetScrollPos</code>,
      <code>SetScrollbar</code>,
      <code>SetSize</code>,
      <code>SetSizeHints</code>,
      <code>SetSizeHintsSz</code>,
      <code>SetSizeWH</code>,
      <code>SetSizer</code>,
      <code>SetSizerAndFit</code>,
      <code>SetThemeEnabled</code>,
      <code>SetToolTip</code>,
      <code>SetToolTipString</code>,
      <code>SetTransparent</code>,
      <code>SetValidator</code>,
      <code>SetVirtualSize</code>,
      <code>SetVirtualSizeHints</code>,
      <code>SetVirtualSizeHintsSz</code>,
      <code>SetVirtualSizeWH</code>,
      <code>SetWindowStyle</code>,
      <code>SetWindowStyleFlag</code>,
      <code>SetWindowVariant</code>,
      <code>ShouldInheritColours</code>,
      <code>Show</code>,
      <code>Thaw</code>,
      <code>ToggleWindowStyle</code>,
      <code>TransferDataFromWindow</code>,
      <code>TransferDataToWindow</code>,
      <code>UnregisterHotKey</code>,
      <code>Update</code>,
      <code>UpdateWindowUI</code>,
      <code>UseBgCol</code>,
      <code>Validate</code>,
      <code>WarpPointer</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._core.EvtHandler</code></b>:
      <code>AddPendingEvent</code>,
      <code>Bind</code>,
      <code>Connect</code>,
      <code>Disconnect</code>,
      <code>GetEvtHandlerEnabled</code>,
      <code>GetNextHandler</code>,
      <code>GetPreviousHandler</code>,
      <code>ProcessEvent</code>,
      <code>ProcessPendingEvents</code>,
      <code>SetEvtHandlerEnabled</code>,
      <code>SetNextHandler</code>,
      <code>SetPreviousHandler</code>,
      <code>Unbind</code>
      </p>
    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._core.EvtHandler</code></b> (private):
      <code>_setOORInfo</code>
      </p></div>
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._core.Object</code></b>:
      <code>GetClassName</code>,
      <code>IsSameAs</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__getattribute__</code>,
      <code>__hash__</code>,
      <code>__new__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__setattr__</code>,
      <code>__str__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== STATIC METHODS ==================== -->
<a name="section-StaticMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Static Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-StaticMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._windows.ScrolledWindow</code></b>:
      <code>GetClassDefaultAttributes</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._core.Window</code></b>:
      <code>FindFocus</code>,
      <code>GetCapture</code>,
      <code>NewControlId</code>,
      <code>NextControlId</code>,
      <code>PrevControlId</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== INSTANCE VARIABLES ==================== -->
<a name="section-InstanceVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceVariables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="avatars"></a><span class="summary-name">avatars</span><br />
      dictionary of <a href="Dingo.OGL.SensorAvatar-class.html" 
      class="link">Dingo.OGL.SensorAvatar</a> objects, keyed on id of 
      represented sensor.
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._windows.ScrolledWindow</code></b>:
      <code>ScaleX</code>,
      <code>ScaleY</code>,
      <code>TargetWindow</code>,
      <code>ViewStart</code>,
      <code>thisown</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._core.Window</code></b>:
      <code>AcceleratorTable</code>,
      <code>AutoLayout</code>,
      <code>BackgroundColour</code>,
      <code>BackgroundStyle</code>,
      <code>BestSize</code>,
      <code>BestVirtualSize</code>,
      <code>Border</code>,
      <code>Caret</code>,
      <code>CharHeight</code>,
      <code>CharWidth</code>,
      <code>Children</code>,
      <code>ClientAreaOrigin</code>,
      <code>ClientRect</code>,
      <code>ClientSize</code>,
      <code>Constraints</code>,
      <code>ContainingSizer</code>,
      <code>Cursor</code>,
      <code>DefaultAttributes</code>,
      <code>DropTarget</code>,
      <code>EffectiveMinSize</code>,
      <code>Enabled</code>,
      <code>EventHandler</code>,
      <code>ExtraStyle</code>,
      <code>Font</code>,
      <code>ForegroundColour</code>,
      <code>GrandParent</code>,
      <code>GtkWidget</code>,
      <code>Handle</code>,
      <code>HelpText</code>,
      <code>Id</code>,
      <code>Label</code>,
      <code>LayoutDirection</code>,
      <code>MaxHeight</code>,
      <code>MaxSize</code>,
      <code>MaxWidth</code>,
      <code>MinHeight</code>,
      <code>MinSize</code>,
      <code>MinWidth</code>,
      <code>Name</code>,
      <code>Parent</code>,
      <code>Position</code>,
      <code>Rect</code>,
      <code>ScreenPosition</code>,
      <code>ScreenRect</code>,
      <code>Shown</code>,
      <code>Size</code>,
      <code>Sizer</code>,
      <code>ThemeEnabled</code>,
      <code>ToolTip</code>,
      <code>TopLevel</code>,
      <code>TopLevelParent</code>,
      <code>UpdateClientRect</code>,
      <code>UpdateRegion</code>,
      <code>Validator</code>,
      <code>VirtualSize</code>,
      <code>WindowStyle</code>,
      <code>WindowStyleFlag</code>,
      <code>WindowVariant</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._core.EvtHandler</code></b>:
      <code>EvtHandlerEnabled</code>,
      <code>NextHandler</code>,
      <code>PreviousHandler</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>wx._core.Object</code></b>:
      <code>ClassName</code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">parent</span>,
        <span class="sig-arg">app</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Initialise the SensorGraph. Helper method, called by the UI in <a 
  href="Dingo.Main.DingoApp-class.html" 
  class="link">Dingo.Main.DingoApp</a>
  <dl class="fields">
    <dt>Overrides:
      wx.lib.ogl._canvas.ShapeCanvas.__init__
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="OnNewAvatar"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">OnNewAvatar</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">msg</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Creates a new SensorAvatar object and places it on the canvas. 
  Triggered by a topic subscription.
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="OnMoveAvatar"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">OnMoveAvatar</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">msg</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Moves a given avatar on the canvas. Triggered by a topic 
  subscription.
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="OnSetColour"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">OnSetColour</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">msg</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Set the colour of an individual avatar. Triggered by a topic 
  subscription.
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="OnSetShape"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">OnSetShape</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">msg</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Set the shape of an individual avatar. Triggered by a topic 
  subscription.
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="OnDrawMsg"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">OnDrawMsg</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">msg</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Event handler for DrawMsg events. Triggered by a topic 
  subscription.
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="drawMsg"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">drawMsg</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">sender</span>=<span class="sig-default">None</span>,
        <span class="sig-arg">receivers</span>=<span class="sig-default">None</span>,
        <span class="sig-arg">bcast</span>=<span class="sig-default">False</span>,
        <span class="sig-arg">colour</span>=<span class="sig-default">None</span>,
        <span class="sig-arg">isdropped</span>=<span class="sig-default">False</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Visualise a radio message.
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>sender</code></strong> (SensorAvatar) - id of the message sender</li>
        <li><strong class="pname"><code>receivers</code></strong> (list) - ids of the set of nodes to receive the message</li>
        <li><strong class="pname"><code>bcast</code></strong> (bool) - whether or not the message is a broadcast</li>
        <li><strong class="pname"><code>colour</code></strong> (SensorColour) - colour of the message visualisation</li>
    </ul></dd>
  </dl>
<div class="fields">      <p><strong>Precondition:</strong>
        len(receivers) &gt; 0
      </p>
</div></td></tr></table>
</div>
<a name="OnResize"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">OnResize</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">event</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Decorator class to ensure wxPython calls are executed in correct 
  thread
  <dl class="fields">
    <dt>Decorators:</dt>
    <dd><ul class="nomargin-top">
        <li><code>@wxThreadSwitch</code></li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="AddSensorAvatar"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">AddSensorAvatar</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">id</span>,
        <span class="sig-arg">xy</span>,
        <span class="sig-arg">colour</span>,
        <span class="sig-arg">size</span>=<span class="sig-default">10</span>,
        <span class="sig-arg">shape</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Decorator class to ensure wxPython calls are executed in correct 
  thread
  <dl class="fields">
    <dt>Decorators:</dt>
    <dd><ul class="nomargin-top">
        <li><code>@wxThreadSwitch</code></li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="GetAvatars"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">GetAvatars</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Decorator class to ensure wxPython calls are executed in correct 
  thread
  <dl class="fields">
    <dt>Decorators:</dt>
    <dd><ul class="nomargin-top">
        <li><code>@wxThreadSwitch</code></li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="GetArcs"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">GetArcs</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Decorator class to ensure wxPython calls are executed in correct 
  thread
  <dl class="fields">
    <dt>Decorators:</dt>
    <dd><ul class="nomargin-top">
        <li><code>@wxThreadSwitch</code></li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="ClearGraph"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">ClearGraph</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Decorator class to ensure wxPython calls are executed in correct 
  thread
  <dl class="fields">
    <dt>Decorators:</dt>
    <dd><ul class="nomargin-top">
        <li><code>@wxThreadSwitch</code></li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="addBackground"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">addBackground</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">theImage</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    >&nbsp;
    </td>
  </table>
  
  Decorator class to ensure wxPython calls are executed in correct 
  thread
  <dl class="fields">
    <dt>Decorators:</dt>
    <dd><ul class="nomargin-top">
        <li><code>@wxThreadSwitch</code></li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="Dingo-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://code.google.com/p/dingo-wsn/">Dingo</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    <a href="epydoc-log.html">Generated by Epydoc
    3.0beta1 on Tue Jun  3 00:42:53 2008</a>
    </td>
    <td align="right" class="footer">
      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie()
  // -->
</script>
  
</body>
</html>
